[IA64] Pass the bare LSAPIC ID to dom0
authorAlex Williamson <alex.williamson@hp.com>
Thu, 19 Jul 2007 21:56:53 +0000 (15:56 -0600)
committerAlex Williamson <alex.williamson@hp.com>
Thu, 19 Jul 2007 21:56:53 +0000 (15:56 -0600)
This patch fixes an issue which dom0 cannot boot with dom0_max_vcpus.
Currently LSAPIC IDs are create by xen, but ACPI SRAT table is the bare
table.  So on some boxes node_cpuid[].phys_id are different from
cpu_physical_id()s, and we cannot boot dom0.

Instead, pass the bare LSAPIC ID to dom0.

Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
xen/arch/ia64/xen/dom_fw_dom0.c

index 4eec44b157f9bdbf50ef1296beb9ce5c4c930021..6b410a0c32345f649a9ef9598dc6de70367045a5 100644 (file)
@@ -55,12 +55,16 @@ acpi_update_lsapic(acpi_table_entry_header * header, const unsigned long end)
                enable = 0;
 
        if (lsapic->flags.enabled && enable) {
-               printk("enable lsapic entry: 0x%lx\n", (u64) lsapic);
-               lsapic->id = lsapic_nbr;
-               lsapic->eid = 0;
+               if (lsapic->id == 0) {
+                       lsapic->id = lsapic_nbr;
+                       lsapic->eid = 0;
+               }
                lsapic_nbr++;
+               printk("enable lsapic entry: 0x%lx (id:eid=%x:%x)\n",
+                      (u64)lsapic, lsapic->id, lsapic->eid);
        } else if (lsapic->flags.enabled) {
-               printk("DISABLE lsapic entry: 0x%lx\n", (u64) lsapic);
+               printk("DISABLE lsapic entry: 0x%lx (id:eid=%x:%x)\n",
+                      (u64)lsapic, lsapic->id, lsapic->eid);
                lsapic->flags.enabled = 0;
                lsapic->id = 0;
                lsapic->eid = 0;